package com.cskaoyan.java.object._3equals._2extend;

import java.math.BigDecimal;

/**
 * 财务金额上的运算是不推荐使用浮点数的
 * 会出现精度问题。推荐使用BigDecimal这个类完成运算。
 *
 * 构造器:
 * BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal。
 *
 * 注意事项: 使用BigDecimal的构造器new对象时,尽量不要用带浮点数参数的构造器
 * 因为浮点数本身有精度问题,可能会导致运算出错
 *
 * @since 15:13
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        double d1 = 1;
        double d2 = 0.9;

        System.out.println(d1 - d2);

        BigDecimal b1 = new BigDecimal("1");
        BigDecimal b2 = new BigDecimal("0.9");

        // BigDecimal subtract(BigDecimal subtrahend)
        //  返回一个 BigDecimal，其值为 (this - subtrahend)，其标度为 max(this.scale(), subtrahend.scale())。
        BigDecimal result = b1.subtract(b2);
        System.out.println(result);
    }
}
